// Copyright 2011 Jefferson Willian
// willmont7@gmail.com

#include <cstdio>

#define MAX_SUM 100000
#define MAX 100

bool makeSum(int in[], int n, int target) {
  int last = 0;
  bool sum[MAX_SUM] = {false};

  sum[0] = true;

  for (int i = 0;i < n;i++)
    for (int j = last;j >= 0;j--)
      if (sum[j]) {
        sum[j+in[i]] = true;
        if (sum[target])
          return true;
        if (j + in[i] > last)
          last = j+in[i];
      }

  return false;
}

/* Considere os os valores iniciais X e Y como uma parte do tesouro
 * e utilize o algoritmo dos selos para saber se consegue "juntar"
 * algum subconjunto de pedacos de forma que a soma seja a metade
 * do total */
int main() {
  int x, y, n;
  int in[MAX];
  bool ret;
  int totalSum;
  int games = 1;

  while (scanf("%d%d%d", &x, &y, &n) && n !=0 || x != 0 || y != 0) {
    /* X e Y nao pode ficar na mesma divisao do pote */
    totalSum = x - y;

    for (int i = 0;i < n;i++) {
      scanf("%d", &in[i]);
      totalSum += in[i];
    }

    printf("Teste %d\n", games++);

    ret = true;
    if ((totalSum)%2 == 1)
      ret = false;

    if (ret) {
      if (makeSum(in, n, totalSum/2))
        printf("S\n\n");
      else
        printf("N\n\n");
    } else {
      printf("N\n\n");
    }
  }

  return 0;
}
